<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<script>
  //普通方式
  //完整的调用方式是 window.sing(),  所以这种方式的this指向window对象
  function sing (){
    console.log("say...")
  }
  //对象调用方式
  //调用时 对象.方法, 所以this指向o这个对象
  var o = {
    say(){
      console.log("say..")
    }
  }

  //构造函数
  //构造函数中的this 指向 star这个对象
  function Star(){
  }
  var star = new Star();

  //绑定事件的函数
  //btn调用了函数, this指向btn这个按钮对象
  btn.onclick=function (){

  }

  //定时器函数,每隔1秒调用
  //完整是 window.setTimeout, 所以this指向的是window
  setTimeout(function (){},1000)

  //立即执行函数,无需调用,会自行调用
    //this指向window对象
    (function (){
      console.log("hello")
    })
</script>
</body>
</html>